import { AutocompleteInteraction, CommandInteraction, ContextMenuCommandInteraction, Collection } from 'discord.js';
import { j as PluginData, r as CommandConfig } from '../index-0830800c.js';
import 'node:http';
import './logger.js';

declare function executeAutocompleteHandler(interaction: AutocompleteInteraction, commandKey: string): Promise<void>;
declare function executeCommandHandler(interaction: CommandInteraction, commandKey: string): Promise<void>;
declare function executeContextHandler(interaction: ContextMenuCommandInteraction, commandKey: string): Promise<void>;
declare function executeEventHandler(plugins: Collection<string, PluginData> | null, eventName: string, ...eventData: unknown[]): Promise<void>;
type ExactConfig<C extends CommandConfig> = {
    [K in keyof C]: K extends keyof CommandConfig ? C[K] : never;
};
type EnforceConfig<C extends CommandConfig> = Exclude<keyof C, keyof CommandConfig> extends never ? C : 'Extra properties are not allowed in CommandConfig';
declare function createCommandConfig<C extends CommandConfig>(config: ExactConfig<C> & EnforceConfig<C>): C;
/**
 * Extracts command options from a Discord interaction
 */
declare function extractCommandOptions(interaction: CommandInteraction, commandOptions: CommandConfig['options']): Record<string, unknown>;

export { createCommandConfig, executeAutocompleteHandler, executeCommandHandler, executeContextHandler, executeEventHandler, extractCommandOptions };
